package com.nanyang.tms.api.service.ticket;

import com.nanyang.common.core.domain.ApiResult;
import com.nanyang.common.core.page.PageBean;
import com.nanyang.tms.api.dto.request.ticket.*;
import com.nanyang.tms.api.dto.response.ticket.TicketPageResponse;
import com.nanyang.tms.api.dto.response.ticket.TicketRecordResponse;
import com.nanyang.tms.api.dto.response.ticket.TicketResponse;

import java.util.List;

public interface TicketRpcService {

    /**
     *
     * <p>listTicketType</p>
     * <p>Description:(查询单号种类列表)</p>
     *
     * @param param
     * @return
     */
    ApiResult<PageBean<TicketPageResponse>> listTicketType(TicketQueryRequest param);

    /**
     *
     * <p>getTicketTypeById</p>
     * <p>Description:(根据code获取单号种类详情)</p>
     *
     * @param code
     * @return
     */
    ApiResult<TicketResponse> selectByCode(String code);

    /**
     *
     * <p>saveTicketType</p>
     * <p>Description:(保存单号种类)</p>
     *
     * @param param
     * @return
     */
    ApiResult<Boolean> saveTicketType(TicketAddRequest param);

    /**
     *
     * <p>updateTicketType</p>
     * <p>Description:(修改单号种类)</p>
     *
     * @param param
     * @return
     */
    ApiResult<Boolean> updateTicketType(TicketUpdateRequest param);

    /**
     *
     * <p>delTicketTypeById</p>
     * <p>Description:(根据code删除单号种类)</p>
     *
     * @param ticketTypeCode
     * @return
     */
    ApiResult<Boolean> delTicketType(String ticketTypeCode,String pin);

    /**
     *
     * <p>listTicketRecord</p>
     * <p>Description:(根据code查看单号)</p>
     *
     * @param param
     * @return
     */
    ApiResult<PageBean<TicketRecordResponse>> listTicketRecord(TicketRecordQueryRequest param);

    /**
     *
     * <p>importTicketNo</p>
     * <p>Description:(导入单号)</p>
     *
     * @param ticketImportRequest
     * @return
     */
    ApiResult<Boolean> importTicketNo(TicketImportRequest ticketImportRequest);
}
